# coding: utf-8
'''

Python中的单下划线和双下划线
'''

class MyClass(object):

	def __init__(self):
		self.__superPrivate = "Hello"
		self._semiPrivate = ", World!"

mc = MyClass()

# print mc.__superPrivate # 外部直接调用不到 属性名被改成了 _MyClass__superprivate, 表示私有
print mc._semiPrivate # , World!
print mc.__dict__ # {'_MyClass__superprivate': 'Hello', '_semiprivate': ', world!'}
print mc._MyClass__superPrivate # Hello



'''

__foo__: 是一种约定的命名方式, Python内部的名字, 用于来区别用户自定义的名称, 防止冲突
_foo: 一种约定, 程序员用来指定私有变量的一种方式
__foo: 这个有真正的意义, 解析器用`_classname__foo`来代替这个名字用来跟其他类区别
'''